package com.example.foodwebbackend.mapper;

import com.example.foodwebbackend.entity.Admin;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface AdminMapper {
    
    /**
     * 根据管理员用户名查找管理员
     */
    Admin findByUsername(@Param("adminUsername") String adminUsername);
    
    /**
     * 根据管理员ID查找管理员
     */
    Admin findById(@Param("adminId") Integer adminId);
    
    /**
     * 插入新管理员
     */
    int insert(Admin admin);
    
    /**
     * 更新管理员信息
     */
    int update(Admin admin);
    
    /**
     * 删除管理员
     */
    int deleteById(@Param("adminId") Integer adminId);
    
    /**
     * 查找所有管理员
     */
    List<Admin> findAll();
    
    /**
     * 根据激活状态查找管理员
     */
    List<Admin> findByActiveStatus(@Param("isActive") Integer isActive);
    
    /**
     * 更新最后登录时间
     */
    int updateLastLoginTime(@Param("adminId") Integer adminId);
    
    /**
     * 检查管理员用户名是否存在
     */
    boolean existsByUsername(@Param("adminUsername") String adminUsername);
    
    /**
     * 更新激活状态
     */
    int updateActiveStatus(@Param("adminId") Integer adminId, @Param("isActive") Integer isActive);
    
    /**
     * 统计管理员总数
     */
    int countAdmins();
} 